home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / Dev / Oberon / source / amiga / Layers.mod < prev    next >
Text File  |  1995-06-29  |  5KB  |  204 lines

  1. (**************************************************************************
  2.  
  3.      $RCSfile: Layers.mod $
  4.   Description: Interface to layers.library
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 3.8 $
  8.       $Author: fjc $
  9.         $Date: 1995/06/04 23:13:14 $
  10.  
  11.   $VER: layers_protos.h 38.7 (26.3.92)
  12.   Includes Release 40.15
  13.  
  14.   (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  15.       All Rights Reserved
  16.  
  17.   Oberon-A interface Copyright © 1994-1995, Frank Copeland.
  18.   This file is part of the Oberon-A Interface.
  19.   See Oberon-A.doc for conditions of use and distribution.
  20.  
  21. ***************************************************************************)
  22.  
  23. <* STANDARD- *>
  24.  
  25. MODULE [2] Layers;
  26.  
  27. IMPORT
  28.   SYS := SYSTEM, Kernel, u := Utility, e := Exec, gfx := Graphics,
  29.   s := Sets;
  30.  
  31.  
  32. (*-- Library Base variable --------------------------------------------*)
  33.  
  34. CONST
  35.  
  36.   layersName * = "layers.library";
  37.  
  38. VAR
  39.  
  40.   base * : e.LibraryPtr;
  41.  
  42.  
  43. (*-- Library Functions ------------------------------------------------*)
  44.  
  45. TYPE
  46.   LONGBOOL * = e.LONGBOOL;
  47.  
  48. CONST
  49.   LTRUE * = e.LTRUE;
  50.   LFALSE * = e.LFALSE;
  51.  
  52.  
  53. PROCEDURE InitLayers* [base,-30] (* ** OBSOLETE ** *)
  54.   ( li [8] : gfx.LayerInfoPtr );
  55. PROCEDURE CreateUpfrontLayer* [base,-36]
  56.   ( li     [8] : gfx.LayerInfoPtr;
  57.     bm     [9] : gfx.BitMapPtr;
  58.     x0     [0] : LONGINT;
  59.     y0     [1] : LONGINT;
  60.     x1     [2] : LONGINT;
  61.     y1     [3] : LONGINT;
  62.     flags  [4] : s.SET16;
  63.     bm2   [10] : gfx.BitMapPtr )
  64.   : gfx.LayerPtr;
  65. PROCEDURE CreateBehindLayer* [base,-42]
  66.   ( li     [8] : gfx.LayerInfoPtr;
  67.     bm     [9] : gfx.BitMapPtr;
  68.     x0     [0] : LONGINT;
  69.     y0     [1] : LONGINT;
  70.     x1     [2] : LONGINT;
  71.     y1     [3] : LONGINT;
  72.     flags  [4] : s.SET16;
  73.     bm2   [10] : gfx.BitMapPtr )
  74.   : gfx.LayerPtr;
  75. PROCEDURE UpfrontLayer* [base,-48]
  76.   ( layer [9] : gfx.LayerPtr )
  77.   : BOOLEAN;
  78. PROCEDURE BehindLayer* [base,-54]
  79.   ( layer [9] : gfx.LayerPtr )
  80.   : BOOLEAN;
  81. PROCEDURE MoveLayer* [base,-60]
  82.   ( layer [9] : gfx.LayerPtr;
  83.     dx    [0] : LONGINT;
  84.     dy    [1] : LONGINT )
  85.   : BOOLEAN;
  86. PROCEDURE SizeLayer* [base,-66]
  87.   ( layer [9] : gfx.LayerPtr;
  88.     dx    [0] : LONGINT;
  89.     dy    [1] : LONGINT )
  90.   : BOOLEAN;
  91. PROCEDURE ScrollLayer* [base,-72]
  92.   ( layer [9] : gfx.LayerPtr;
  93.     dx    [0] : LONGINT;
  94.     dy    [1] : LONGINT );
  95. PROCEDURE BeginUpdate* [base,-78]
  96.   ( l [8] : gfx.LayerPtr )
  97.   : BOOLEAN;
  98. PROCEDURE EndUpdate* [base,-84]
  99.   ( layer [8] : gfx.LayerPtr;
  100.     flag  [0] : LONGBOOL );
  101. PROCEDURE DeleteLayer* [base,-90]
  102.   ( layer [9] : gfx.LayerPtr )
  103.   : BOOLEAN;
  104. PROCEDURE LockLayer* [base,-96]
  105.   ( layer [9] : gfx.LayerPtr );
  106. PROCEDURE UnlockLayer* [base,-102]
  107.   ( layer [8] : gfx.LayerPtr );
  108. PROCEDURE LockLayers* [base,-108]
  109.   ( li [8] : gfx.LayerInfoPtr );
  110. PROCEDURE UnlockLayers* [base,-114]
  111.   ( li [8] : gfx.LayerInfoPtr );
  112. PROCEDURE LockLayerInfo* [base,-120]
  113.   ( li [8] : gfx.LayerInfoPtr );
  114. PROCEDURE SwapBitsRastPortClipRect* [base,-126]
  115.   ( rp     [8] : gfx.RastPortPtr;
  116.     VAR cr [9] : gfx.ClipRect );
  117. PROCEDURE WhichLayer* [base,-132]
  118.   ( li [8] : gfx.LayerInfoPtr;
  119.     x  [0] : LONGINT;
  120.     y  [1] : LONGINT )
  121.   : gfx.LayerPtr;
  122. PROCEDURE UnlockLayerInfo* [base,-138]
  123.   ( VAR li [8] : gfx.LayerInfo );
  124. PROCEDURE NewLayerInfo* [base,-144] ()
  125.   : gfx.LayerInfoPtr;
  126. PROCEDURE DisposeLayerInfo* [base,-150]
  127.   ( li [8] : gfx.LayerInfoPtr );
  128. PROCEDURE FattenLayerInfo* [base,-156] (* ** OBSOLETE ** *)
  129.   ( li [8] : gfx.LayerInfoPtr );
  130. PROCEDURE ThinLayerInfo* [base,-162] (* ** OBSOLETE ** *)
  131.   ( li [8] : gfx.LayerInfoPtr );
  132. PROCEDURE MoveLayerInFrontOf* [base,-168]
  133.   ( layertomove    [8] : gfx.LayerPtr;
  134.     VAR otherlayer [9] : gfx.LayerPtr )
  135.   : BOOLEAN;
  136. PROCEDURE InstallClipRegion* [base,-174]
  137.   ( layer  [8] : gfx.LayerPtr;
  138.     region [9] : gfx.RegionPtr )
  139.   : gfx.RegionPtr;
  140. PROCEDURE MoveSizeLayer* [base,-180]
  141.   ( layer [8] : gfx.LayerPtr;
  142.     dx    [0] : LONGINT;
  143.     dy    [1] : LONGINT;
  144.     dw    [2] : LONGINT;
  145.     dh    [3] : LONGINT )
  146.   : BOOLEAN;
  147. PROCEDURE CreateUpfrontHookLayer* [base,-186]
  148.   ( li    [8] : gfx.LayerInfoPtr;
  149.     bm    [9] : gfx.BitMapPtr;
  150.     x0    [0] : LONGINT;
  151.     y0    [1] : LONGINT;
  152.     x1    [2] : LONGINT;
  153.     y1    [3] : LONGINT;
  154.     flags [4] : s.SET16;
  155.     hook [11] : u.HookBasePtr;
  156.     bm2  [10] : gfx.BitMapPtr )
  157.   : gfx.LayerPtr;
  158. PROCEDURE CreateBehindHookLayer* [base,-192]
  159.   ( li    [8] : gfx.LayerInfoPtr;
  160.     bm    [9] : gfx.BitMapPtr;
  161.     x0    [0] : LONGINT;
  162.     y0    [1] : LONGINT;
  163.     x1    [2] : LONGINT;
  164.     y1    [3] : LONGINT;
  165.     flags [4] : s.SET16;
  166.     hook [11] : u.HookBasePtr;
  167.     bm2  [10] : gfx.BitMapPtr )
  168.   : gfx.LayerPtr;
  169. PROCEDURE InstallLayerHook* [base,-198]
  170.   ( layer [8] : gfx.LayerPtr;
  171.     hook  [9] : u.HookBasePtr )
  172.   : u.HookPtr;
  173.  
  174. (*--- functions in V39 or higher (Release 3) ---*)
  175.  
  176. PROCEDURE InstallLayerInfoHook* [base,-204]
  177.   ( li   [8] : gfx.LayerInfoPtr;
  178.     hook [9] : u.HookBasePtr )
  179.   : u.HookPtr;
  180. PROCEDURE SortLayerCR* [base,-210]
  181.   ( layer [8] : gfx.LayerPtr;
  182.     dx    [0] : LONGINT;
  183.     dy    [1] : LONGINT );
  184. PROCEDURE DoHookClipRects* [base,-216]
  185.   ( hook  [8] : u.HookBasePtr;
  186.     rport [9] : gfx.RastPortPtr;
  187.     rect [10] : gfx.RectanglePtr );
  188.  
  189. (*-- Library Base variable --------------------------------------------*)
  190.  
  191. <*$LongVars-*>
  192.  
  193. PROCEDURE* [0] Close (VAR rc : LONGINT);
  194.  
  195. BEGIN (* Close *)
  196.   IF base # NIL THEN e.CloseLibrary (base) END
  197. END Close;
  198.  
  199. BEGIN (* Layers *)
  200.   base := e.OpenLibrary (layersName, e.libraryMinimum);
  201.   IF base = NIL THEN HALT (100) END;
  202.   Kernel.SetCleanup (Close)
  203. END Layers.
  204.